/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import BD.MateriasConcluidasBD;
import BD.TurmaAlunoDisciplinaBD;
import ConexaoBackupBD.ConexaoBD;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author dilso
 */
public class MateriasConcluidasDAO {
    ConexaoBD conBD = new ConexaoBD();
    Statement BDMateriasConcluidas;
    ResultSet rs;
    
    public int creditosTotaisAluno (Integer raAluno){
        int creditosTotais = 0;
        
            Connection con = conBD.conectar();
            try {
                BDMateriasConcluidas = con.createStatement();
            } catch (SQLException ex) {
                Logger.getLogger(MateriasConcluidasDAO.class.getName()).log(Level.SEVERE, null, ex);
            }

            try {
                //recupera os dados do aluno de acordo com a disciplina
                rs = BDMateriasConcluidas.executeQuery("select SUM(tad.creditosdisciplina) as total from aluno "
                        + "join turmaalunodisciplina tad on (tad.ra_al = aluno.ra_al) "
                        + "join turmadisciplina dt on (tad.cod_turma=dt.cod_turma and tad.cod_dis=dt.cod_dis) "
                        + "join turma t on (t.cod_turma = tad.cod_turma) "
                        + "join disciplina d on (d.cod_dis = dt.cod_dis) "
                        + "where tad.aprovado = 1 and aluno.ra_al =" + raAluno + " "
                        + "ORDER BY t.ano_turma, d.nome_dis;");
            } catch (SQLException ex) {
                Logger.getLogger(MateriasConcluidasDAO.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            if (rs != null) {  
            try {
                while (rs.next()) {
                        creditosTotais = rs.getInt("total");
                }
            } catch (SQLException ex) {
                Logger.getLogger(MateriasConcluidasDAO.class.getName()).log(Level.SEVERE, null, ex);
            }
            }
        return creditosTotais;
    }
    
    
    public List<MateriasConcluidasBD> carregaMateriasConcluidas(Integer raAluno) {      
        List<MateriasConcluidasBD> listaFiltro = new ArrayList(); 

        try { 

            Connection con = conBD.conectar();
            BDMateriasConcluidas = con.createStatement();

            //recupera os dados do aluno de acordo com a disciplina
            rs = BDMateriasConcluidas.executeQuery("select d.nome_dis, tad.creditosdisciplina, t.ano_turma from aluno "
                    + "join turmaalunodisciplina tad on (tad.ra_al = aluno.ra_al) "
                    + "join turmadisciplina dt on (tad.cod_turma=dt.cod_turma and tad.cod_dis=dt.cod_dis) "
                    + "join turma t on (t.cod_turma = tad.cod_turma) "
                    + "join disciplina d on (d.cod_dis = dt.cod_dis) "
                    + "where tad.aprovado = 1 and aluno.ra_al =" + raAluno + " "
                    + "ORDER BY t.ano_turma, d.nome_dis;");
            


            if (rs != null) {  
                
                    while (rs.next()) {
                       
                        MateriasConcluidasBD mc = new MateriasConcluidasBD();
                                               
                        //Seta os dados
                        mc.setAnoTurma(rs.getInt("t.ano_turma"));
                        mc.setCreditosDisciplina(rs.getInt("tad.creditosdisciplina"));
                        mc.setNomeDisciplina(rs.getString("d.nome_dis"));
                        // add na lista
                        listaFiltro.add(mc);
                }
                con.close();
                return listaFiltro; 
          }else {

                con.close();
                return null; 
          } 
        } catch (SQLException e) { 
            return null; 
        } 
    }
}
